{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Main.VAE"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "include(\"vae_mnist.jl\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "┌ Info: using Knet.KnetArrays.KnetArray{Float32,N} where N\n",
      "└ @ Main.VAE /scratch/users/dyuret/examples/variational-autoencoder/vae_mnist.jl:124\n",
      "┌ Warning: optimizers is deprecated, use sgd, adam etc. instead.\n",
      "└ @ Knet.Train20 /userfiles/dyuret/.julia/dev/Knet/src/train20/update.jl:598\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(:epoch, 0, :trn, 0.7053912f0, :tst, 0.7054187f0)\n",
      "  0.000004 seconds (1 allocation: 32 bytes)\n"
     ]
    }
   ],
   "source": [
    "# obtain a non-trained network\n",
    "θ, ϕ = VAE.main(\"--infotime 10 --seed 1 --epochs 0\");"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "146×146 reinterpret(Gray{Float64}, ::Array{Float64,2}):\n",
       " Gray{Float64}(1.0)  Gray{Float64}(1.0)       Gray{Float64}(1.0)       …  Gray{Float64}(1.0)       Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.397776)  Gray{Float64}(0.479089)     Gray{Float64}(0.601338)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.421054)  Gray{Float64}(0.484862)     Gray{Float64}(0.450781)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.547144)  Gray{Float64}(0.443641)     Gray{Float64}(0.458544)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.49504)   Gray{Float64}(0.585485)     Gray{Float64}(0.462687)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.471404)  Gray{Float64}(0.490611)  …  Gray{Float64}(0.530481)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.55754)   Gray{Float64}(0.529634)     Gray{Float64}(0.553836)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.581541)  Gray{Float64}(0.604919)     Gray{Float64}(0.523119)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.413261)  Gray{Float64}(0.432548)     Gray{Float64}(0.606645)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.474683)  Gray{Float64}(0.45414)      Gray{Float64}(0.588718)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.441739)  Gray{Float64}(0.54032)   …  Gray{Float64}(0.431566)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.55176)   Gray{Float64}(0.531156)     Gray{Float64}(0.413923)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.607207)  Gray{Float64}(0.559232)     Gray{Float64}(0.511682)  Gray{Float64}(1.0)\n",
       " ⋮                                                                     ⋱                           ⋮\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.511945)  Gray{Float64}(0.462598)     Gray{Float64}(0.425019)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.506907)  Gray{Float64}(0.442552)  …  Gray{Float64}(0.556229)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.490444)  Gray{Float64}(0.468246)     Gray{Float64}(0.52389)   Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.467747)  Gray{Float64}(0.477668)     Gray{Float64}(0.553346)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.398788)  Gray{Float64}(0.509192)     Gray{Float64}(0.431042)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.492141)  Gray{Float64}(0.421815)     Gray{Float64}(0.435226)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.491744)  Gray{Float64}(0.49149)   …  Gray{Float64}(0.48261)   Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.49096)   Gray{Float64}(0.441763)     Gray{Float64}(0.648821)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.460516)  Gray{Float64}(0.481139)     Gray{Float64}(0.423675)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.530963)  Gray{Float64}(0.483976)     Gray{Float64}(0.37112)   Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(0.551049)  Gray{Float64}(0.488064)     Gray{Float64}(0.481845)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(1.0)       Gray{Float64}(1.0)       …  Gray{Float64}(1.0)       Gray{Float64}(1.0)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# generate examples with the non-trained network\n",
    "VAE.plot_dream(θ);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "┌ Info: using Knet.KnetArrays.KnetArray{Float32,N} where N\n",
      "└ @ Main.VAE /scratch/users/dyuret/examples/variational-autoencoder/vae_mnist.jl:124\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(:epoch, 0, :trn, 0.7053912f0, :tst, 0.7054187f0)\n",
      " 15.970154 seconds (35.88 M allocations: 1.967 GiB, 4.92% gc time)\n",
      "  1.422316 seconds (3.24 M allocations: 320.086 MiB, 5.16% gc time)\n",
      "  1.202788 seconds (3.22 M allocations: 323.049 MiB, 5.57% gc time)\n",
      "  1.114373 seconds (3.10 M allocations: 316.629 MiB, 2.91% gc time)\n",
      "  1.227980 seconds (3.21 M allocations: 323.103 MiB, 6.77% gc time)\n",
      "  1.208325 seconds (3.23 M allocations: 320.267 MiB, 5.47% gc time)\n",
      "  1.106742 seconds (3.10 M allocations: 319.883 MiB, 2.94% gc time)\n",
      "  1.192602 seconds (3.22 M allocations: 323.269 MiB, 5.53% gc time)\n",
      "  1.182460 seconds (3.22 M allocations: 319.074 MiB, 5.57% gc time)\n",
      "  1.112242 seconds (3.09 M allocations: 322.490 MiB, 2.93% gc time)\n",
      "(:epoch, 10, :trn, 0.13503909f0, :tst, 0.13492692f0)\n",
      "  1.123450 seconds (3.07 M allocations: 316.444 MiB, 2.24% gc time)\n",
      "  1.196164 seconds (3.22 M allocations: 322.717 MiB, 6.17% gc time)\n",
      "  1.186461 seconds (3.22 M allocations: 319.073 MiB, 5.53% gc time)\n",
      "  1.143814 seconds (3.10 M allocations: 323.151 MiB, 2.87% gc time)\n",
      "  1.172357 seconds (3.22 M allocations: 318.932 MiB, 5.59% gc time)\n",
      "  1.188004 seconds (3.22 M allocations: 319.252 MiB, 5.38% gc time)\n",
      "  1.135815 seconds (3.10 M allocations: 320.235 MiB, 2.93% gc time)\n",
      "  1.178044 seconds (3.22 M allocations: 325.481 MiB, 5.63% gc time)\n",
      "  1.187740 seconds (3.22 M allocations: 318.801 MiB, 5.55% gc time)\n",
      "  1.102883 seconds (3.09 M allocations: 316.930 MiB, 2.89% gc time)\n",
      "(:epoch, 20, :trn, 0.13239309f0, :tst, 0.13233948f0)\n",
      "  1.100176 seconds (3.09 M allocations: 319.940 MiB, 2.62% gc time)\n",
      "  1.213176 seconds (3.22 M allocations: 320.147 MiB, 5.35% gc time)\n",
      "  1.104950 seconds (3.10 M allocations: 319.553 MiB, 2.91% gc time)\n",
      "  1.180878 seconds (3.22 M allocations: 324.796 MiB, 5.49% gc time)\n",
      "  1.202690 seconds (3.22 M allocations: 319.471 MiB, 5.58% gc time)\n",
      "  1.097914 seconds (3.10 M allocations: 316.001 MiB, 2.87% gc time)\n",
      "  1.173638 seconds (3.22 M allocations: 323.703 MiB, 5.38% gc time)\n",
      "  1.178581 seconds (3.22 M allocations: 324.859 MiB, 5.48% gc time)\n",
      "  1.105281 seconds (3.10 M allocations: 316.865 MiB, 2.94% gc time)\n",
      "  1.174219 seconds (3.22 M allocations: 318.737 MiB, 5.49% gc time)\n",
      "(:epoch, 30, :trn, 0.13117327f0, :tst, 0.13129424f0)\n",
      "  1.157998 seconds (3.15 M allocations: 320.856 MiB, 3.93% gc time)\n",
      "  1.185611 seconds (3.22 M allocations: 325.443 MiB, 5.53% gc time)\n",
      "  1.119881 seconds (3.10 M allocations: 316.411 MiB, 2.95% gc time)\n",
      "  1.185932 seconds (3.22 M allocations: 319.110 MiB, 5.43% gc time)\n",
      "  1.180210 seconds (3.22 M allocations: 323.180 MiB, 5.45% gc time)\n",
      "  1.112374 seconds (3.09 M allocations: 316.692 MiB, 2.88% gc time)\n",
      "  1.218786 seconds (3.22 M allocations: 325.052 MiB, 5.42% gc time)\n",
      "  1.166902 seconds (3.10 M allocations: 316.852 MiB, 2.88% gc time)\n",
      "  1.217517 seconds (3.22 M allocations: 323.026 MiB, 5.19% gc time)\n",
      "  1.174565 seconds (3.22 M allocations: 319.250 MiB, 5.46% gc time)\n",
      "(:epoch, 40, :trn, 0.13044706f0, :tst, 0.130622f0)\n",
      "  1.150991 seconds (3.17 M allocations: 322.380 MiB, 4.30% gc time)\n",
      "  1.128833 seconds (3.10 M allocations: 320.905 MiB, 2.91% gc time)\n",
      "  1.186970 seconds (3.22 M allocations: 319.223 MiB, 5.46% gc time)\n",
      "  1.180997 seconds (3.22 M allocations: 324.936 MiB, 5.52% gc time)\n",
      "  1.105943 seconds (3.10 M allocations: 316.931 MiB, 2.95% gc time)\n",
      "  1.173809 seconds (3.22 M allocations: 319.541 MiB, 5.38% gc time)\n",
      "  1.212805 seconds (3.22 M allocations: 322.538 MiB, 5.71% gc time)\n",
      "  1.112965 seconds (3.09 M allocations: 322.178 MiB, 2.95% gc time)\n",
      "  1.176033 seconds (3.22 M allocations: 319.419 MiB, 5.53% gc time)\n",
      "  1.134396 seconds (3.10 M allocations: 316.315 MiB, 2.84% gc time)\n",
      "(:epoch, 50, :trn, 0.12970512f0, :tst, 0.12989002f0)\n",
      "  1.164404 seconds (3.19 M allocations: 322.802 MiB, 4.71% gc time)\n",
      "  1.107030 seconds (3.09 M allocations: 321.276 MiB, 2.90% gc time)\n",
      "  1.178883 seconds (3.22 M allocations: 318.470 MiB, 5.50% gc time)\n",
      "  1.115002 seconds (3.10 M allocations: 323.273 MiB, 2.93% gc time)\n",
      "  1.193907 seconds (3.22 M allocations: 318.371 MiB, 5.54% gc time)\n",
      "  1.222049 seconds (3.22 M allocations: 320.436 MiB, 5.41% gc time)\n",
      "  1.099838 seconds (3.10 M allocations: 319.533 MiB, 2.92% gc time)\n",
      "  1.196905 seconds (3.22 M allocations: 325.432 MiB, 5.45% gc time)\n",
      "  1.202652 seconds (3.22 M allocations: 318.873 MiB, 5.49% gc time)\n",
      "  1.105303 seconds (3.10 M allocations: 316.549 MiB, 2.94% gc time)\n",
      "(:epoch, 60, :trn, 0.12938468f0, :tst, 0.1297097f0)\n",
      "  1.102108 seconds (3.08 M allocations: 319.553 MiB, 2.41% gc time)\n",
      "  1.168184 seconds (3.22 M allocations: 319.836 MiB, 5.46% gc time)\n",
      "  1.183626 seconds (3.22 M allocations: 322.641 MiB, 5.50% gc time)\n",
      "  1.151958 seconds (3.09 M allocations: 322.191 MiB, 2.90% gc time)\n",
      "  1.170348 seconds (3.22 M allocations: 319.727 MiB, 5.57% gc time)\n",
      "  1.109418 seconds (3.10 M allocations: 315.947 MiB, 2.84% gc time)\n",
      "  1.213011 seconds (3.22 M allocations: 323.280 MiB, 5.35% gc time)\n",
      "  1.204699 seconds (3.22 M allocations: 325.255 MiB, 5.80% gc time)\n",
      "  1.120893 seconds (3.10 M allocations: 316.509 MiB, 2.95% gc time)\n",
      "  1.175371 seconds (3.22 M allocations: 319.182 MiB, 5.41% gc time)\n",
      "(:epoch, 70, :trn, 0.12910375f0, :tst, 0.1295688f0)\n",
      "  1.132639 seconds (3.15 M allocations: 320.745 MiB, 3.84% gc time)\n",
      "  1.221768 seconds (3.22 M allocations: 325.467 MiB, 6.26% gc time)\n",
      "  1.099668 seconds (3.10 M allocations: 316.259 MiB, 3.00% gc time)\n",
      "  1.174003 seconds (3.22 M allocations: 318.851 MiB, 5.45% gc time)\n",
      "  1.215392 seconds (3.22 M allocations: 323.582 MiB, 5.37% gc time)\n",
      "  1.111251 seconds (3.10 M allocations: 316.793 MiB, 2.90% gc time)\n",
      "  1.205159 seconds (3.22 M allocations: 325.130 MiB, 6.38% gc time)\n",
      "  1.174972 seconds (3.22 M allocations: 318.901 MiB, 5.45% gc time)\n",
      "  1.106105 seconds (3.09 M allocations: 320.306 MiB, 2.82% gc time)\n",
      "  1.171594 seconds (3.22 M allocations: 319.543 MiB, 5.48% gc time)\n",
      "(:epoch, 80, :trn, 0.12874113f0, :tst, 0.12906483f0)\n",
      "  1.175916 seconds (3.16 M allocations: 322.301 MiB, 4.09% gc time)\n",
      "  1.100300 seconds (3.10 M allocations: 321.035 MiB, 2.93% gc time)\n",
      "  1.183814 seconds (3.22 M allocations: 319.121 MiB, 5.44% gc time)\n",
      "  1.203243 seconds (3.22 M allocations: 325.118 MiB, 5.50% gc time)\n",
      "  1.106583 seconds (3.10 M allocations: 316.626 MiB, 2.96% gc time)\n",
      "  1.175135 seconds (3.22 M allocations: 322.887 MiB, 5.33% gc time)\n",
      "  1.170932 seconds (3.22 M allocations: 319.447 MiB, 5.45% gc time)\n",
      "  1.116555 seconds (3.10 M allocations: 322.374 MiB, 2.93% gc time)\n",
      "  1.194246 seconds (3.22 M allocations: 319.517 MiB, 5.48% gc time)\n",
      "  1.177079 seconds (3.22 M allocations: 318.697 MiB, 5.44% gc time)\n",
      "(:epoch, 90, :trn, 0.12837693f0, :tst, 0.12879246f0)\n",
      "  1.289897 seconds (3.18 M allocations: 322.865 MiB, 4.18% gc time)\n",
      "  1.131897 seconds (3.10 M allocations: 320.389 MiB, 2.91% gc time)\n",
      "  1.187062 seconds (3.22 M allocations: 319.061 MiB, 5.83% gc time)\n",
      "  1.181230 seconds (3.22 M allocations: 325.128 MiB, 5.51% gc time)\n",
      "  1.105366 seconds (3.09 M allocations: 316.987 MiB, 2.96% gc time)\n",
      "  1.172035 seconds (3.22 M allocations: 319.659 MiB, 5.42% gc time)\n",
      "  1.131529 seconds (3.10 M allocations: 319.963 MiB, 2.83% gc time)\n",
      "  1.181958 seconds (3.22 M allocations: 325.191 MiB, 5.60% gc time)\n",
      "  1.171477 seconds (3.22 M allocations: 318.900 MiB, 5.52% gc time)\n",
      "  1.119653 seconds (3.10 M allocations: 316.993 MiB, 2.83% gc time)\n",
      "(:epoch, 100, :trn, 0.12806758f0, :tst, 0.12864676f0)\n",
      "134.986559 seconds (355.23 M allocations: 35.145 GiB, 4.69% gc time)\n"
     ]
    }
   ],
   "source": [
    "# train a VAE network for 100 epochs\n",
    "θ, ϕ = VAE.main(\"--infotime 10 --seed 1 --epochs 100\"); # 184s, 0.12784874f0, 0.128488f0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "146×146 reinterpret(Gray{Float64}, ::Array{Float64,2}):\n",
       " Gray{Float64}(1.0)  Gray{Float64}(1.0)          Gray{Float64}(1.0)          …  Gray{Float64}(1.0)          Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(4.64976e-8)   Gray{Float64}(1.44488e-7)      Gray{Float64}(1.09318e-7)   Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(7.24009e-8)   Gray{Float64}(9.97295e-8)      Gray{Float64}(5.41343e-8)   Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(8.80278e-8)   Gray{Float64}(7.20617e-8)      Gray{Float64}(1.17559e-7)   Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(6.42708e-8)   Gray{Float64}(5.57009e-8)      Gray{Float64}(4.38939e-8)   Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(7.12515e-8)   Gray{Float64}(5.06898e-9)   …  Gray{Float64}(4.37126e-10)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(6.12167e-8)   Gray{Float64}(8.62439e-8)      Gray{Float64}(2.25818e-11)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(2.48928e-8)   Gray{Float64}(8.86094e-11)     Gray{Float64}(1.6656e-10)   Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(2.71707e-11)  Gray{Float64}(1.01778e-7)      Gray{Float64}(2.2875e-9)    Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(4.74425e-14)  Gray{Float64}(3.87796e-8)      Gray{Float64}(1.74434e-10)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(1.15442e-11)  Gray{Float64}(3.35261e-7)   …  Gray{Float64}(5.97625e-12)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(3.06454e-13)  Gray{Float64}(3.21073e-7)      Gray{Float64}(4.30296e-14)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(5.46904e-12)  Gray{Float64}(9.11391e-7)      Gray{Float64}(1.08812e-13)  Gray{Float64}(1.0)\n",
       " ⋮                                                                           ⋱                              ⋮\n",
       " Gray{Float64}(1.0)  Gray{Float64}(9.47365e-7)   Gray{Float64}(3.55738e-6)      Gray{Float64}(4.35462e-8)   Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(5.78192e-7)   Gray{Float64}(3.59528e-6)   …  Gray{Float64}(4.16028e-6)   Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(1.23158e-8)   Gray{Float64}(9.56602e-6)      Gray{Float64}(3.55452e-6)   Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(3.07162e-7)   Gray{Float64}(9.08136e-7)      Gray{Float64}(3.95629e-11)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(4.15436e-7)   Gray{Float64}(2.66345e-7)      Gray{Float64}(3.58084e-15)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(4.61134e-7)   Gray{Float64}(8.52187e-5)      Gray{Float64}(8.72234e-18)  Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(3.43692e-7)   Gray{Float64}(4.14736e-7)   …  Gray{Float64}(2.8549e-8)    Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(3.06218e-7)   Gray{Float64}(2.20296e-7)      Gray{Float64}(3.09376e-8)   Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(2.45914e-7)   Gray{Float64}(2.80597e-7)      Gray{Float64}(2.94432e-8)   Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(1.23697e-7)   Gray{Float64}(3.13826e-7)      Gray{Float64}(3.2831e-8)    Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(3.72873e-7)   Gray{Float64}(2.74169e-7)      Gray{Float64}(1.27398e-8)   Gray{Float64}(1.0)\n",
       " Gray{Float64}(1.0)  Gray{Float64}(1.0)          Gray{Float64}(1.0)          …  Gray{Float64}(1.0)          Gray{Float64}(1.0)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# generate examples with the trained network\n",
    "VAE.plot_dream(θ);"
   ]
  }
 ],
 "metadata": {
  "@webio": {
   "lastCommId": null,
   "lastKernelId": null
  },
  "kernelspec": {
   "display_name": "Julia 1.5.3",
   "language": "julia",
   "name": "julia-1.5"
  },
  "language_info": {
   "file_extension": ".jl",
   "mimetype": "application/julia",
   "name": "julia",
   "version": "1.5.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
